Skip to content

ci(ISSUE_TEMPLATE): 新增议题模板语种纯度检查 - #760

Open
PtJade-Ceramic wants to merge 7 commits into
maboloshi:gh-pagesfrom
PtJade-Ceramic:ISSUE_TEMPLATE-test
Open

PtJade-Ceramic wants to merge 7 commits into
maboloshi:gh-pagesfrom
PtJade-Ceramic:ISSUE_TEMPLATE-test

Conversation

@PtJade-Ceramic

@PtJade-Ceramic PtJade-Ceramic commented Jul 28, 2026 •

Copy link
Copy Markdown
Contributor

简介

Fix #799 。

本拉取请求加入一个校验脚本与对应工作流,并修正两版模板中已存在的混字。

变更内容

  • 校验脚本 script/check_issue_template_purity.py
    • 用 OpenCC(t2s / s2tw)转换后逐字比对,列出被改动的字(如 骤→驟)及其所在字段。
    • 无参数时检查全部已登记模板,并双向校验登记表:出现未登记的模板、或已登记的模板缺失,均以退出码 1 结束。
    • 代码块与行内代码中的字形不参与检查。
    • 模板目录下出现 .yaml 直接报错:GitHub 只读 FORM-NAME.yml,以免它被静默忽略。
    • 中文提示统一按 UTF-8 写入,避免 Windows 管道重定向下触发编码错误。
  • 工作流 .github/workflows/check_issue_template_purity.yml:模板、脚本或工作流本身变更时运行;permissions: contents: read;固定依赖版本并在 CI 中跑单元测试。
  • 单元测试 test/test_check_issue_template_purity.py:9 个用例,覆盖简繁混入、代码块与行内代码豁免、未登记与缺失的登记模板、.yaml 文件、台湾用语护栏,以及仓库内真实模板必须通过。
  • 模板修正:bug-提交-简体中文-.yml、bug-提交-繁體中文-.yml 中混入的字形改回本模板对应的字形,两版内容对齐。
  • .gitignore:忽略 __pycache__/。

依赖

pyyaml、opencc-python-reimplemented。

说明

本拉取请求已收敛为只包含议题模板的语种纯度检查:README / CONTRIBUTING 的源文件驱动生成、pre-commit 钩子等部分不再包含在本 PR 内。

@PtJade-Ceramic PtJade-Ceramic changed the title docs(ISSUE_TEMPLATE): 新工作流程统一管理议题模板 docs: 统一管理议题模板、贡献指南与自述的多语言生成 Aug 2, 2026
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as ready for review August 2, 2026 17:15
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as draft August 2, 2026 17:29
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as ready for review August 2, 2026 18:29
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as draft August 2, 2026 18:31
@PtJade-Ceramic
PtJade-Ceramic force-pushed the ISSUE_TEMPLATE-test branch 2 times, most recently from c1dde45 to 68c60cd Compare August 2, 2026 21:10
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as ready for review August 2, 2026 21:39
@PtJade-Ceramic PtJade-Ceramic changed the title docs: 统一管理议题模板、贡献指南与自述的多语言生成 docs: 统一多语言文档生成(源文件驱动、生成文件不入库) Aug 2, 2026
@maboloshi
maboloshi requested a review from Copilot August 3, 2026 01:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@PtJade-Ceramic

PtJade-Ceramic commented Aug 3, 2026 •

Copy link
Copy Markdown
Contributor Author

Tip

@maboloshi 请安装 GitHub App gh-chinese-ai-reviewer 到您的账户 + 仅 github-chinese 仓库。
好处:任何用户可随时在 PR 评论 /review 请求 AI 审查,或提交后自动审查;每次审查使用请求者自己的 DeepSeek 额度,仓库不存任何密钥;审查以机器人 gh-chinese-ai-reviewer[bot] 身份发布(不占用任何用户账号)。可随时在 App 设置中撤销安装。
FYI: PtJade-Ceramic#5 (comment)

@maboloshi

Copy link
Copy Markdown
Owner

最近可能没太多时间复核 复杂PR,需要晚点处理

@gh-chinese-ai-reviewer

This comment has been minimized.

Comment thread .githooks/pre-commit Outdated
Comment thread script/manage.ps1 Outdated
Comment thread script/manage.cmd Outdated
Comment thread pyproject.toml Outdated
@gh-chinese-ai-reviewer

This comment has been minimized.

Comment thread .githooks/pre-commit Outdated
Comment thread .github/workflows/check_issue_template_consistency.yml Outdated
Comment thread script/manage.ps1 Outdated
Comment thread script/manage.cmd Outdated
@gh-chinese-ai-reviewer

This comment has been minimized.

Comment thread .githooks/pre-commit Outdated
Comment thread script/manage.ps1 Outdated
Comment thread .github/workflows/check_issue_template_consistency.yml Outdated
Comment thread .gitignore Outdated
Comment thread script/manage_templates.py Outdated
Comment thread script/manage_templates.py Outdated
@gh-chinese-ai-reviewer

This comment has been minimized.

Comment thread .gitignore Outdated
Comment thread .github/workflows/check_issue_template_consistency.yml Outdated
Comment thread .githooks/pre-commit Outdated
Comment thread .gitattributes Outdated
@gh-chinese-ai-reviewer

Copy link
Copy Markdown

🤖 AI 审查(DeepSeek)— PR #760

概览

本次 PR 将多语言文档生成流程重构为「YAML 源文件 + Jinja2 模板」模式,生成文件不入库,由 CI 自动生成提交。整体设计合理,但存在若干关键问题:.gitignore 忽略根目录 README 导致仓库主页空白风险、.gitattributes 对 .cmd 文件使用 CRLF 可能引发跨平台问题、CI 自动提交存在权限与循环触发风险、钩子脚本在 Windows 下可能失效等。

发现的问题

🔴 阻断

  1. .gitignore 忽略根目录 README.md 和 README_zh-TW.md(.gitignore 第 18-19 行)(上次已提出,仍未解决):

    • 这会导致仓库主页在生成文件未提交时为空,且 PR 合并后若 CI 未及时生成,主页将空白。建议改为忽略 script/multilingual-docs/ 下的生成文件,或确保 CI 在合并后立即生成。
  2. CI 自动提交可能因权限不足而失败(.github/workflows/check_issue_template_consistency.yml 第 66-79 行):

    • 使用 GITHUB_TOKEN 推送提交到默认分支,但该 token 默认无写权限,且推送会触发新的 workflow 运行,可能导致循环。建议使用具有写权限的 PAT 或 workflow_dispatch 触发,并添加 on: push 的路径过滤避免循环。
  3. .gitattributes 中 script/manage.cmd text eol=crlf 可能导致跨平台问题(.gitattributes 第 6 行)(上次已提出,仍未解决):

    • 存储为 LF,检出为 CRLF,但若用户 core.autocrlf 设置为 input,可能不一致。建议统一为 text eol=lf。

🟠 重要

  1. pre-commit 钩子中 read -r answer < /dev/tty 在 Windows 下不可用(.githooks/pre-commit 第 44 行):

    • Windows 的 Git Bash 可能没有 /dev/tty,导致交互失败。建议使用 read -r answer 并依赖 stdin 重定向,或检测平台。
  2. manage_templates.py 中 _tr 函数仅替换少量词汇,繁体转换不完整(script/manage_templates.py 第 27-38 行):

    • 提示文案的繁体转换仅覆盖少数词汇,可能遗漏其他常用词,导致繁体环境下提示不完整。建议使用 OpenCC 进行完整转换。
  3. update_contributors_images.yml 中 git diff --quiet --exit-code script/multilingual-docs/README.yml 检测源文件变更,但生成文件已 gitignore,若源文件未变更但生成文件有差异,不会触发提交(.github/workflows/update_contributors_images.yml 第 39 行):

    • 应检测生成文件是否与源文件一致,或直接检测生成文件是否被修改。

🟡 建议

  1. manage_templates.py 中 _generate_requirements 使用 tomllib,但 pyproject.toml 中 requires-python = ">=3.11",若用户 Python 版本低于 3.11,会跳过生成,可能导致依赖缺失(script/manage_templates.py 第 93-100 行):

    • 建议在 --requirements 时明确报错,或提供手动安装指引。
  2. .gitignore 中忽略 vscode-extension/README.md 和 README_zh-TW.md,但未忽略 vscode-extension/README_zh-TW.md 的生成文件(.gitignore 第 22-23 行):

    • 已忽略,但建议确认路径正确。

🔵 nit

  1. .githooks/pre-commit 中 echo -e 在 POSIX shell 中不可移植(.githooks/pre-commit 第 28 行):
    • 建议使用 printf 代替。

优点

  • 设计清晰,源文件驱动,生成文件不入库,减少维护成本。
  • 提供 --check 和 --doc-dir 选项,便于验证和预览。
  • 钩子测试覆盖关键场景,CI 集成较完善。

重写/改进建议

  • 考虑将生成文件提交到仓库,避免 CI 依赖和主页空白风险。
  • 使用 actions/checkout 的 persist-credentials: false 并显式配置 token。
  • 在钩子中处理 Windows 兼容性。

⚠️ diff 超过 60KB 已截断,本次审查可能不完整。


由 script/ai_review.py 生成,使用请求者自己的 DeepSeek 额度。

Comment thread .gitignore Outdated
Comment thread .gitattributes Outdated
Comment thread .githooks/pre-commit Outdated
Comment thread .github/workflows/check_issue_template_consistency.yml Outdated
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as ready for review August 12, 2026 19:39
@maboloshi
maboloshi force-pushed the gh-pages branch 2 times, most recently from 9e96ff3 to 57e47af Compare August 25, 2026 16:17
用 OpenCC 转换比对校验繁体模板未混入简体字、简体模板未混入繁体字;议题模板或检查脚本变更时由工作流自动运行。
覆盖简繁字形混入、代码块与行内代码豁免、未登记模板、已登记模板缺失,以及仓库内真实模板的回归保护。
无参数检查时,names 只取自实际存在的文件,已登记的模板若缺失会被静默跳过;现补充缺失校验并退 1。另把 stderr 也强制为 UTF-8,避免 Windows 管道重定向下中文提示触发 UnicodeEncodeError。
修正「Bug 提交(繁體中文)」模板中混入的简体字(欢迎、步骤、并、对、相关、選择、扩展、源码),并把两版模板的字段 id、说明文案与链接排版对齐。
@PtJade-Ceramic PtJade-Ceramic changed the title docs: 统一多语言文档生成(源文件驱动、生成文件不入库) ci(ISSUE_TEMPLATE): 新增议题模板语种纯度检查 Sep 21, 2026
@PtJade-Ceramic
PtJade-Ceramic requested a lite review from Copilot September 21, 2026 17:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

存在关键的 OpenCC 误报问题、.yaml 模板遗漏,以及测试未纳入 CI。

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity · 1 Medium severity

Open (2)

Comment thread script/check_issue_template_purity.py
Comment thread script/check_issue_template_purity.py
台湾用语用例用于防回归:一旦所用 OpenCC 配置带上词汇表(如 s2twp),「插件/腳本/設定」会被改写而误报,此用例会立刻变红。.yaml 用例当前失败:模板目录下的 .yaml 会被 GitHub 忽略,脚本却静默跳过。
议题表单按平台约定必须是 .yml(config.yml 亦然),此前 .yaml 会被静默跳过:既不检查也不提示,登记进 TEMPLATES 还会被误报为缺失。现在显式报错并退出 1。同时注明转换配置只取字形级(s2tw 无词汇表),避免换成 s2twp 后把词汇差异当字形混用。
此前 pip install 不带版本,转换行为由包内词典决定,换包/升级可能引入词汇级误报;现固定 pyyaml==6.0.3、opencc-python-reimplemented==0.1.7。另外补一步 unittest,让本地与 CI 使用同一套用例。
@PtJade-Ceramic

Copy link
Copy Markdown
Contributor Author

复核 复杂PR

@maboloshi 请复核

@maboloshi

Copy link
Copy Markdown
Owner

我这几天到时看看

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

纯化语种

3 participants